perm filename BASIC.PUB[L,MRC] blob sn#477024 filedate 1979-09-06 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00007 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	. DEVICE XGP
C00008 00003	.<< Print in //italics/ or boldface. >>
C00010 00004	.<< Print page headings on XGP (using boldface) before new page started. >>
C00012 00005	.<< Set line spacing to new value. >>
C00014 00006	.<< Start text justification. >>
C00015 00007	.<< Set up for body of text. >>
C00016 ENDMK
C⊗;
. DEVICE XGP;
.
.
. SIDES ← 1;
.<< Set up fonts and text responses for device selected. >>
.
.
.<< Turn on quote character ("α") and font switching character ("%"). >>
.
.TURN ON "α%";
.
.<< Declare Baskerville fonts, FIX25 for special characters, and SUP for footnote
.numbers. >>
.
.FONT 1 "BASL30";
.FONT 2 "BASI30";
.FONT 3 "BASB30";
.FONT 4 "FIX25";
.FONT 5 "SUP";
.<< FONT 6 "DIA.FNT[FNT,GHB]";>>
.<< FONT 7 "MTEXT.FNT[FNT,GHB];>>
.
.
.<< a sharp, flat, and alla breve time signature.  >>
.
.<< AT "##" ⊂ "%7α#%*"; ⊃;>>
.<< AT "#b" ⊂ "%7αb%*"; ⊃;>>
.<< AT "#C" ⊂ "%7αC%*"; ⊃;>>
.<< AT "#≠" ⊂ "%7α≠%*"; ⊃;>>
.<< AT "#4" ⊂ "%64%*"; ⊃;>>
.<< AT "#≥" ⊂ "%6≥%*"; ⊃;>>
. 
.
.<< Put in ligatures in all three Baskerville fonts. >>
.
.AT "ffl" ⊂ IF 1 ≤ THISFONT ≤ 3 THEN "α∞" ELSE "αfαfαl"; ⊃;
.AT "ffi" ⊂ IF 1 ≤ THISFONT ≤ 3 THEN "α≠"  ELSE "αfαfαi"; ⊃;
.AT "ff"  ⊂ IF 1 ≤ THISFONT ≤ 3 THEN "α≥"  ELSE "αfαf"; ⊃;
.AT "fi"  ⊂ IF 1 ≤ THISFONT ≤ 3 THEN "α≡" ELSE "αfαi"; ⊃;
.AT "fl"  ⊂ IF 1 ≤ THISFONT ≤ 3 THEN "α∨"  ELSE "αfαl"; ⊃;
.
.<< Provide Stanford ASCII characters not available in Baskerville. >>
.
.AT "'%" ⊂ "α%"; ⊃;
.AT "¬" ⊂ IF 1 ≤ THISFONT ≤ 3 THEN "%4α¬%*" ELSE "α¬"; ⊃;
.AT "ε" ⊂ IF THISFONT = 1 THEN "%2αε%*" ELSE "αε"; ⊃;
.AT "∀" ⊂ IF THISFONT = 1 THEN "%2α∀%*" ELSE "α∀"; ⊃;
.AT "~" ⊂ IF THISFONT = 2 THEN "%1α~%*" ELSE "α~"; ⊃;
.AT "≠" ⊂ IF 1 ≤ THISFONT ≤ 3 THEN "%4α≠%*" ELSE "α≠"; ⊃;
.AT "≥" ⊂ IF 1 ≤ THISFONT ≤ 3 THEN "%4α≥%*" ELSE "α≥"; ⊃;
.AT "≡" ⊂ IF 1 ≤ THISFONT ≤ 3 THEN "%4α≡%*" ELSE "α≡"; ⊃;
.
.<< Convert two successive Baskerville hyphens into em dash. >>
.
.AT "--"  ⊂ IF 1 ≤ THISFONT ≤ 3 THEN "α¬" ELSE "α--"; ⊃;
.
.<< fix .) constructs.  >>
.
.<< .AT ".)" ⊂ ".) " ⊃;  >>
.
.
.
.<< make up diacriticals >>
.
.<< .AT ":a" ⊂ "%6α:%*a" ⊃;>>
.<< .AT ":o" ⊂ "%6α:%*o" ⊃;>>
.<< .AT ":u" ⊂ "%6α:%*u" ⊃;>>
.<< .AT "'a" ⊂ "%6α'%*a" ⊃;>>
.<< .AT "'e" ⊂ "%6α'%*e" ⊃;>>
.<<.AT "'o" ⊂ "%6α'%*o" ⊃;>>
.<<.AT "'u" ⊂ "%6α'%*u" ⊃;>>
.<<.AT "'U" ⊂ "%6α'%*U" ⊃;>>
.<<.AT "`a" ⊂ "%6α`%*a" ⊃;>>
.<<.AT "`e" ⊂ "%6α`%*e" ⊃;>>
.<<.AT "`o" ⊂ "%6α`%*o" ⊃;>>
.<<.AT "`u" ⊂ "%6α`%*u" ⊃;>>
.<<.AT "''" ⊂ "α'" ⊃;>>
.<<.AT "∧a" ⊂ "%6α∧%*a" ⊃;>>
.<<.AT "∧e" ⊂ "%6α∧%*e" ⊃;>>
.<<.AT "∧i" ⊂ "%6α∧%*i" ⊃;>>
.<<.AT "∧o" ⊂ "%6α∧%*o" ⊃;>>
.<<.AT "∧u" ⊂ "%6α∧%*u" ⊃;>>
.<<.AT ",c" ⊂ "%6α,%*c" ⊃;>>
.<<.AT ",C" ⊂ "%6α,%*C" ⊃;>>
.<<.AT ":O" ⊂ "%6α:%*O" ⊃;>>
.<<.AT ":e" ⊂ "%6α:%*e" ⊃;>>
.<<.AT ":y" ⊂ "%6α:%*y" ⊃;>>
.<<.AT ":U" ⊂ "%6α:%*U" ⊃;>>
.<<.AT "'E" ⊂ "%6α'%*E" ⊃;>>
.<<.AT "'i" ⊂ "%6α'%*i" ⊃;>>
.<<.AT "''" ⊂ "α'" ⊃;>>
.<<.AT "'\" ⊂ "α/" ⊃;>>
.<<.AT "∨r" ⊂ "%6α∨%*r" ⊃;<<
.<<.AT "∨s" ⊂ "%6α∨%*s" ⊃;>>
.<<.AT "∨z" ⊂ "%6α∨%*z" ⊃;>>
.AT "[ALPH]" ⊂ "%4αα%*" ⊃;
.AT "[ARROW]" ⊂ "%4α↓%*" ⊃;
.AT "[DOT]" ⊂ "%4α.%*" ⊃;
.AT "[INF]" ⊂ "%4α∞%*" ⊃;
.
.
.<< Digest number of sides per page and columns per side. >>
.
.  SIDES ← 1;
.<< Set up page frame and COLMNS macro for selected device. >>
.
. VARIABLE PAGE_HEIGHT, PAGE_WIDTH;
.
.  ODDLEFTBORDER←EVENLEFTBORDER←1375;
.  LMARG←0;
.  TOPBORDER←500;
.  PAGE_WIDTH←RMARG←76;
.  PAGE_HEIGHT←54;
.  PAGE FRAME PAGE_WIDTH WIDE PAGE_HEIGHT HIGH;
.   AREA TEXT LINES 4 TO 53;
.  TITLE AREA HEADING LINES 1 TO 3;
.  TITLE AREA FOOTING LINE 54;
.  COLS ← 1;
.  SSNAME ← NULL;
.  PLACE TEXT;
.  NEXT PAGE;
.
.<< Print in //italics/ or ⊗⊗boldface⊗. >>
.
.AT "//" ENTRY "/"
.	⊂
.	LASTFONT1 ← THISFONT;
.	("%2ENTRY%" & LASTFONT1);
.	⊃;
.
.AT "⊗⊗" ENTRY "⊗"
.	⊂
.	LASTFONT2 ← THISFONT;
.	("%3ENTRY%" & LASTFONT2);
.	⊃;
.
.<< Print page headings on XGP (using boldface) before new page started. >>
.
.
.
.RECURSIVE MACRO STANDARD TITLES
.	⊂
.	NOFILL;
.	TURN ON "←→{";
.	PREFACE 0;
.	INDENT 0,0,0;
.	PLACE HEADING;
.	SELECT 3;
.	!EH;
.	PLACE FOOTING;
.	!EF;
.	⊃;
.
.<< Set line spacing to new value. >>
.
.MACRO SPACES(NUMSPACES)
.	⊂
.	IF NUMSPACES > 0
.		THEN
.			START "SET NEW INTER- AND INTRA-PARAGRAPH SPACING"
.			BREAK;
.			PREFACE NUMSPACES;
.			SPACING NUMSPACES-1;
.			END "SET NEW INTER- AND INTRA-PARAGRAPH SPACING"
.		ELSE USERERR("SPACES argument not positive integer");
.	⊃;
.<< Start text justification. >>
.
.MACRO JUSTIFY
.	⊂
.	FILL;
.	ADJUST;
.	RETAIN;
.	⊃;
.
.<< Set up for body of text. >>
.
. 4'i*$Sg⊂&`RgεE↔βE↔⊂⊂⊃k"i,H$"`b∩g#T⊗=h cQP␈∀]CE↔εE⊂)bf⊃aj⊂_NFE↔⊂∩*ij$Q,]FE⊂!gjS*⊂( QbP#)∪fP_P∃'P≤\N]FE↔λ'"l*λ( cbNFE↔⊂∀h abTP→≥FB↔⊂$g⊃"g*⊂
]FE∃